<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Get rollup jobs API | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="rollup-apis.html" title="Rollup APIs">
<link rel="prev" href="rollup-delete-job.html" title="Delete rollup jobs API">
<link rel="next" href="rollup-get-rollup-caps.html" title="Get rollup job capabilities API">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="rest-apis.html">REST APIs</a></span>
»
<span class="breadcrumb-link"><a href="rollup-apis.html">Rollup APIs</a></span>
»
<span class="breadcrumb-node">Get rollup jobs API</span>
</div>
<div class="navheader">
<span class="prev">
<a href="rollup-delete-job.html">« Delete rollup jobs API</a>
</span>
<span class="next">
<a href="rollup-get-rollup-caps.html">Get rollup job capabilities API »</a>
</span>
</div>
<div class="section xpack">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="rollup-get-job"></a>Get rollup jobs API<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/rollup/apis/get-job.asciidoc">edit</a><a class="xpack_tag" href="/subscriptions"></a>
</h2>
</div></div></div>

<p>Retrieves the configuration, stats, and status of rollup jobs.</p>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>This functionality is experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.</p>
</div>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="rollup-get-job-request"></a>Request<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/rollup/apis/get-job.asciidoc">edit</a>
</h3>
</div></div></div>
<p><code class="literal">GET _rollup/job/&lt;job_id&gt;</code></p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="rollup-get-job-prereqs"></a>Prerequisites<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/rollup/apis/get-job.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
If the Elasticsearch security features are enabled, you must have <code class="literal">monitor</code>,
<code class="literal">monitor_rollup</code>, <code class="literal">manage</code> or <code class="literal">manage_rollup</code> cluster privileges to use this API.
For more information, see <a class="xref" href="security-privileges.html" title="Security privileges">Security privileges</a>.
</li>
</ul>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="rollup-get-job-desc"></a>Description<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/rollup/apis/get-job.asciidoc">edit</a>
</h3>
</div></div></div>
<p>The API can return the details for a single rollup job or for all rollup jobs.</p>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>This API returns only active (both <code class="literal">STARTED</code> and <code class="literal">STOPPED</code>) jobs. If a job
was created, ran for a while then deleted, this API does not return any details
about that job.</p>
</div>
</div>
<p>For details about a historical rollup job, the
<a class="xref" href="rollup-get-rollup-caps.html" title="Get rollup job capabilities API">rollup capabilities API</a> may be more useful.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="rollup-get-job-path-params"></a>Path parameters<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/rollup/apis/get-job.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">&lt;job_id&gt;</code>
</span>
</dt>
<dd>
(Optional, string) Identifier for the rollup job. If it is <code class="literal">_all</code> or omitted,
 the API returns all rollup jobs.
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="rollup-get-job-response-body"></a>Response body<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/rollup/apis/get-job.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">jobs</code>
</span>
</dt>
<dd>
<p>
(array) An array of rollup job resources.
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">config</code>
</span>
</dt>
<dd>
(object) Contains the configuration for the rollup job. This information
is identical to the configuration that was supplied when creating the job
via the <a class="xref" href="rollup-put-job.html" title="Create rollup jobs API">create job API</a>.
</dd>
<dt>
<span class="term">
<code class="literal">status</code>
</span>
</dt>
<dd>
<p>
(object) Contains the current status of the indexer for the rollup job.
The possible values and their meanings are:
</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<code class="literal">stopped</code> means the indexer is paused and will not process data, even if its
cron interval triggers.
</li>
<li class="listitem">
<code class="literal">started</code> means the indexer is running, but not actively indexing data. When
the cron interval triggers, the job’s indexer will begin to process data.
</li>
<li class="listitem">
<code class="literal">indexing</code> means the indexer is actively processing data and creating new
rollup documents. When in this state, any subsequent cron interval triggers will
be ignored because the job is already active with the prior trigger.
</li>
<li class="listitem">
<code class="literal">abort</code> is a transient state, which is usually not witnessed by the user. It
is used if the task needs to be shut down for some reason (job has been deleted,
an unrecoverable error has been encountered, etc).  Shortly after the <code class="literal">abort</code>
state is set, the job will remove itself from the cluster.
</li>
</ul>
</div>
</dd>
<dt>
<span class="term">
<code class="literal">stats</code>
</span>
</dt>
<dd>
(object) Contains transient statistics about the rollup job, such as how
many documents have been processed and how many rollup summary docs have
been indexed. These stats are not persisted. If a node is restarted, these
stats will be reset.
</dd>
</dl>
</div>
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="rollup-get-job-example"></a>Examples<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/rollup/apis/get-job.asciidoc">edit</a>
</h3>
</div></div></div>
<p>If we have already created a rollup job named <code class="literal">sensor</code>, the details about the
job can be retrieved with:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">GET _rollup/job/sensor</pre>
</div>
<div class="console_widget" data-snippet="snippets/1870.console"></div>
<p>The API yields the following response:</p>
<div class="pre_wrapper lang-console-result">
<pre class="programlisting prettyprint lang-console-result">{
    "jobs" : [
        {
          "config" : {
            "id" : "sensor",
            "index_pattern" : "sensor-*",
            "rollup_index" : "sensor_rollup",
            "cron" : "*/30 * * * * ?",
            "groups" : {
              "date_histogram" : {
                "fixed_interval" : "1h",
                "delay": "7d",
                "field": "timestamp",
                "time_zone": "UTC"
              },
              "terms" : {
                "fields" : [
                  "node"
                ]
              }
            },
            "metrics" : [
              {
                "field" : "temperature",
                "metrics" : [
                  "min",
                  "max",
                  "sum"
                ]
              },
              {
                "field" : "voltage",
                "metrics" : [
                  "avg"
                ]
              }
            ],
            "timeout" : "20s",
            "page_size" : 1000
          },
          "status" : {
            "job_state" : "stopped",
            "upgraded_doc_id": true
          },
          "stats" : {
            "pages_processed" : 0,
            "documents_processed" : 0,
            "rollups_indexed" : 0,
            "trigger_count" : 0,
            "index_failures": 0,
            "index_time_in_ms": 0,
            "index_total": 0,
            "search_failures": 0,
            "search_time_in_ms": 0,
            "search_total": 0,
            "processing_time_in_ms": 0,
            "processing_total": 0
          }
        }
    ]
}</pre>
</div>
<p>The <code class="literal">jobs</code> array contains a single job (<code class="literal">id: sensor</code>) since we requested a single job in the endpoint’s URL.
If we add another job, we can see how multi-job responses are handled:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">PUT _rollup/job/sensor2 <a id="CO603-1"></a><i class="conum" data-value="1"></i>
{
    "index_pattern": "sensor-*",
    "rollup_index": "sensor_rollup",
    "cron": "*/30 * * * * ?",
    "page_size" :1000,
    "groups" : {
      "date_histogram": {
        "field": "timestamp",
        "fixed_interval": "1h",
        "delay": "7d"
      },
      "terms": {
        "fields": ["node"]
      }
    },
    "metrics": [
        {
            "field": "temperature",
            "metrics": ["min", "max", "sum"]
        },
        {
            "field": "voltage",
            "metrics": ["avg"]
        }
    ]
}

GET _rollup/job/_all <a id="CO603-2"></a><i class="conum" data-value="2"></i></pre>
</div>
<div class="console_widget" data-snippet="snippets/1871.console"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO603-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>We create a second job with name <code class="literal">sensor2</code></p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO603-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>Then request all jobs by using <code class="literal">_all</code> in the GetJobs API</p>
</td>
</tr>
</table>
</div>
<p>Which will yield the following response:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
    "jobs" : [
        {
          "config" : {
            "id" : "sensor2",
            "index_pattern" : "sensor-*",
            "rollup_index" : "sensor_rollup",
            "cron" : "*/30 * * * * ?",
            "groups" : {
              "date_histogram" : {
                "fixed_interval" : "1h",
                "delay": "7d",
                "field": "timestamp",
                "time_zone": "UTC"
              },
              "terms" : {
                "fields" : [
                  "node"
                ]
              }
            },
            "metrics" : [
              {
                "field" : "temperature",
                "metrics" : [
                  "min",
                  "max",
                  "sum"
                ]
              },
              {
                "field" : "voltage",
                "metrics" : [
                  "avg"
                ]
              }
            ],
            "timeout" : "20s",
            "page_size" : 1000
          },
          "status" : {
            "job_state" : "stopped",
            "upgraded_doc_id": true
          },
          "stats" : {
            "pages_processed" : 0,
            "documents_processed" : 0,
            "rollups_indexed" : 0,
            "trigger_count" : 0,
            "index_failures": 0,
            "index_time_in_ms": 0,
            "index_total": 0,
            "search_failures": 0,
            "search_time_in_ms": 0,
            "search_total": 0,
            "processing_time_in_ms": 0,
            "processing_total": 0
          }
        },
        {
          "config" : {
            "id" : "sensor",
            "index_pattern" : "sensor-*",
            "rollup_index" : "sensor_rollup",
            "cron" : "*/30 * * * * ?",
            "groups" : {
              "date_histogram" : {
                "fixed_interval" : "1h",
                "delay": "7d",
                "field": "timestamp",
                "time_zone": "UTC"
              },
              "terms" : {
                "fields" : [
                  "node"
                ]
              }
            },
            "metrics" : [
              {
                "field" : "temperature",
                "metrics" : [
                  "min",
                  "max",
                  "sum"
                ]
              },
              {
                "field" : "voltage",
                "metrics" : [
                  "avg"
                ]
              }
            ],
            "timeout" : "20s",
            "page_size" : 1000
          },
          "status" : {
            "job_state" : "stopped",
            "upgraded_doc_id": true
          },
          "stats" : {
            "pages_processed" : 0,
            "documents_processed" : 0,
            "rollups_indexed" : 0,
            "trigger_count" : 0,
            "index_failures": 0,
            "index_time_in_ms": 0,
            "index_total": 0,
            "search_failures": 0,
            "search_time_in_ms": 0,
            "search_total": 0,
            "processing_time_in_ms": 0,
            "processing_total": 0
          }
        }
    ]
}</pre>
</div>
</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="rollup-delete-job.html">« Delete rollup jobs API</a>
</span>
<span class="next">
<a href="rollup-get-rollup-caps.html">Get rollup job capabilities API »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
